Skip to main content

Gate

Introduction#

Gate アクセス制御の中核となるクラスです。

アクセス定義の追加: あるアクションやリソースへのアクセスを制御するロジックを定義します。

アクセスの確認: あるアクションやリソースへのアクセスが許可されているかどうかを確認します。

アプリケーションごとに特有のアクセス制限を作ることができます。

例えば、Applicationのbootでこのように定義します。

public function boot (){    Gate::define('edit-post', function ($auth, $post) {        return $auth->id === $post->user_id;    });}

コントローラーなどで、Gateのチェックを行います。

if (Gate::allows('edit-post', $post)) {    // ユーザーが投稿を編集する権限がある場合の処理} else {    // 権限がない場合の処理}

上記の例では、allows メソッドを使用して、認証されたユーザーが $post という投稿を編集できるかどうかを確認しています。

逆に、アクセスが拒否されているかどうかを確認する場合は、denies メソッドを使用します。

if (Gate::denies('edit-post', $post)) {    // 権限がない場合の処理}